// $Id: module.cpp 2 2009-09-02 08:47:42Z joseph2002 $
/*
 * Copyright 2009 Joseph Wu
 * Distributed under the Boost Software License, Version 1.0.
 * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 *
 * For more information, see http://xpcomplus.sourceforge.net
 */

#include <xpcom/aggregate.hpp>
#include <xpcom/module.hpp>
#include "hello.hpp"

namespace xpcom {
namespace example {

class HelloModule : public module<HelloWorld, aggregatable<HelloWorld> >
{
public:
    HelloModule()
    {
        component<HelloWorld>()
            .classid("{3153E723-63ED-4f86-9E1A-5A3C8DA496B7}")
            .contractid("@xpcomplus.sf.net/example-hello;1")
            .description("HelloWorld Class");

        component<aggregatable<HelloWorld> >()
            .classid("cd6962a5-531e-4ede-8501-9eec545f2f19")
            .contractid("@xpcomplus.sf.net/example-aggregatable-hello;1")
            .description("Aggregatable HelloWorld Class");
    }
};

} // namespace xpcom::example
} // namespace xpcom

XPCOM_MODULE(xpcom::example::HelloModule, Hello)
